<?php
 $rapport = "Mise a jour de la base Garennes Notanet...<br>" ;
 
 Function maj ($id_c, $nom_base)
  {
   Global $rapport, $ok_maj, $debug_SQL ;
   //$debug_SQL=1 ;
   $ds = SQL_commande ("SELECT id_notanet_discipline_speciale,identifiant FROM notanet_disciplines_speciales", $id_c) ;
   $nbr_ds_1 = SQL_nbr_lignes ($ds) ;
   For ($i = 1 ; $i <= 6 ; $i++) { $disc_spe [$i] = 0 ; }
   For ($i = 0 ; $i < $nbr_ds_1 ; $i++)
    {
     $ligne = SQL_ligne_suivante ($ds) ; $identifiant = -(integer)$ligne [1] ;
     Switch ($identifiant)
      {
       Case 1 : $ok = SQL_commande ("UPDATE notanet_disciplines_speciales SET libelle='Premi&egrave;re langue vivante',titre='Anglais 1, Allemand 1, Espagnol 1, ...' WHERE id_notanet_discipline_speciale='".$ligne [0]."' LIMIT 1", $id_c) ;
                $disc_spe [1] = 1 ;
		Break ;
       Case 2 : $ok = SQL_commande ("UPDATE notanet_disciplines_speciales SET libelle='Deuxi&egrave;me langue vivante',titre='Anglais 2, Allemand 2, Espagnol 2,...' WHERE id_notanet_discipline_speciale='".$ligne [0]."' LIMIT 1", $id_c) ;
                $disc_spe [2] = 1 ;
		Break ;
       Case 3 : $ok = SQL_commande ("UPDATE notanet_disciplines_speciales SET libelle='Option facultative',titre='Option du DNB' WHERE id_notanet_discipline_speciale='".$ligne [0]."' LIMIT 1", $id_c) ;
                $disc_spe [3] = 1 ;
		Break ;
       Case 4 : $ok = SQL_commande ("UPDATE notanet_disciplines_speciales SET libelle='Vie scolaire',titre='Note de vie scolaire' WHERE id_notanet_discipline_speciale='".$ligne [0]."' LIMIT 1", $id_c) ;
                $disc_spe [4] = 1 ;
		Break ;
       Case 5 : $ok = SQL_commande ("UPDATE notanet_disciplines_speciales SET libelle='Socle B2I',titre='Brevet Informatique et Internet' WHERE id_notanet_discipline_speciale='".$ligne [0]."' LIMIT 1", $id_c) ;
                $disc_spe [5] = 1 ;
		Break ;
       Case 6 : $ok = SQL_commande ("UPDATE notanet_disciplines_speciales SET libelle='Socle niveau A2 de langue',titre='Niveau A2 de langue' WHERE id_notanet_discipline_speciale='".$ligne [0]."' LIMIT 1", $id_c) ;
                $disc_spe [6] = 1 ;
		Break ;
      }
    }
   For ($i = 1 ; $i <= 6 ; $i++)
    {
     If ($disc_spe [$i] == 0)
      {
       Switch ($i)
        {
	 Case 1 : $ok = SQL_commande ("INSERT INTO notanet_disciplines_speciales (identifiant,libelle,titre) VALUES (-1,'Premi&egrave;re langue vivante','Anglais 1, Allemand 1, Espagnol 1, ...')", $id_c) ;
	          Break ;
	 Case 2 : $ok = SQL_commande ("INSERT INTO notanet_disciplines_speciales (identifiant,libelle,titre) VALUES (-2,'Deuxi&egrave;me langue vivante','Anglais 2, Allemand 2, Espagnol 2,...')", $id_c) ;
	          Break ;
	 Case 3 : $ok = SQL_commande ("INSERT INTO notanet_disciplines_speciales (identifiant,libelle,titre) VALUES (-3,'Option facultative','Option du DNB')", $id_c) ;
	          Break ;
	 Case 4 : $ok = SQL_commande ("INSERT INTO notanet_disciplines_speciales (identifiant,libelle,titre) VALUES (-4,'Vie scolaire','Note de vie scolaire')", $id_c) ;
	          Break ;
	 Case 5 : $ok = SQL_commande ("INSERT INTO notanet_disciplines_speciales (identifiant,libelle,titre) VALUES (-5,'Socle B2I','Brevet Informatique et Internet')", $id_c) ;
	          Break ;
	 Case 6 : $ok = SQL_commande ("INSERT INTO notanet_disciplines_speciales (identifiant,libelle,titre) VALUES (-6,'Socle niveau A2 de langue','Niveau A2 de langue')", $id_c) ;
	          Break ;
	}
      }
    }
   $tn = SQL_commande ("SELECT id_notanet_type_note,code FROM notanet_types_notes", $id_c) ;
   $nbr_tn_1 = SQL_nbr_lignes ($tn) ;
   For ($i = 1 ; $i <= 6 ; $i++) { $tp_notes [$i] = 0 ; }
   For ($i = 0 ; $i < $nbr_tn_1 ; $i++)
    {
     $ligne = SQL_ligne_suivante ($tn) ;
     Switch ($ligne [1])
      {
       Case "DI" : $ok = SQL_commande ("UPDATE notanet_types_notes SET code='DI',libelle='Candidat dispens&eacute;' WHERE id_notanet_type_note='".$ligne [0]."' LIMIT 1", $id_c) ;
                   $tp_notes [1] = 1 ;
		   Break ;
       Case "NN" : $ok = SQL_commande ("UPDATE notanet_types_notes SET code='NN',libelle='Mati&egrave;re non not&eacute;e' WHERE id_notanet_type_note='".$ligne [0]."' LIMIT 1", $id_c) ;
                   $tp_notes [2] = 1 ;
		   Break ;
       Case "AB" : $ok = SQL_commande ("UPDATE notanet_types_notes SET code='AB',libelle='Candidat absent' WHERE id_notanet_type_note='".$ligne [0]."' LIMIT 1", $id_c) ;
                   $tp_notes [3] = 1 ;
		   Break ;
       Case "MS" : $ok = SQL_commande ("UPDATE notanet_types_notes SET code='MS',libelle='Ma&icirc;trise du socle' WHERE id_notanet_type_note='".$ligne [0]."' LIMIT 1", $id_c) ;
                   $tp_notes [4] = 1 ;
		   Break ;
       Case "ME" : $ok = SQL_commande ("UPDATE notanet_types_notes SET code='ME',libelle='Ma&icirc;trise de certains &eacute;l&eacute;ments du socle' WHERE id_notanet_type_note='".$ligne [0]."' LIMIT 1", $id_c) ;
                   $tp_notes [5] = 1 ;
		   Break ;
       Case "MN" : $ok = SQL_commande ("UPDATE notanet_types_notes SET code='MN',libelle='Ma&icirc;trise du socle non &eacute;valu&eacute;e' WHERE id_notanet_type_note='".$ligne [0]."' LIMIT 1", $id_c) ;
                   $tp_notes [6] = 1 ;
		   Break ;
      }
    }
   For ($i = 1 ; $i <= 6 ; $i++)
    {
     If ($tp_notes [$i] == 0)
      {
       Switch ($i)
        {
	 Case 1 : $ok = SQL_commande ("INSERT INTO notanet_types_notes (code,libelle) VALUES ('DI','Candidat dispens&eacute;')", $id_c) ;
	          Break ;
	 Case 2 : $ok = SQL_commande ("INSERT INTO notanet_types_notes (code,libelle) VALUES ('NN','Mati&egrave;re non not&eacute;e')", $id_c) ;
	          Break ;
	 Case 3 : $ok = SQL_commande ("INSERT INTO notanet_types_notes (code,libelle) VALUES ('AB','Candidat absent')", $id_c) ;
	          Break ;
	 Case 4 : $ok = SQL_commande ("INSERT INTO notanet_types_notes (code,libelle) VALUES ('MS','Ma&icirc;trise du socle')", $id_c) ;
	          Break ;
	 Case 5 : $ok = SQL_commande ("INSERT INTO notanet_types_notes (code,libelle) VALUES ('ME','Ma&icirc;trise de certains &eacute;l&eacute;ments du socle')", $id_c) ;
	          Break ;
	 Case 6 : $ok = SQL_commande ("INSERT INTO notanet_types_notes (code,libelle) VALUES ('MN','Ma&icirc;trise du socle non &eacute;valu&eacute;e')", $id_c) ;
	          Break ;
	}
      }
    }
   $ds = SQL_commande ("SELECT * FROM notanet_disciplines_speciales", $id_c) ;
   $nbr_ds_2 = SQL_nbr_lignes ($ds) ;
   $tn = SQL_commande ("SELECT * FROM notanet_types_notes", $id_c) ;
   $nbr_tn_2 = SQL_nbr_lignes ($tn) ;
   If (($nbr_ds_2 == 6) And ($nbr_tn_2 == 6)) { $rapport .= "&nbsp;Base '<b>".$nom_base."</b>' -> <b>OK</b><br>" ; $ok_maj = 1  ; }
   Else
    {
     $rapport .= "&nbsp;Base '<b>".$nom_base."</b>' :<br>" ;
     If ($nbr_ds_2-$nbr_ds_1 > 0) { $rapport .= "&nbsp;&nbsp;Ajout de ".($nbr_ds_2-$nbr_ds_1)." discipline(s) sp&eacute;ciale(s)<br>" ; }
     If ($nbr_tn_2-$nbr_tn_1 > 0) { $rapport .= "&nbsp;&nbsp;Ajout de ".($nbr_tn_2-$nbr_tn_1)." type(s) de note(s)<br>" ; }
    }
   $ok = SQL_commande ("ALTER TABLE notanet_definitions ADD nom_discipline VARCHAR(200) NOT NULL", $id_c) ;
  }
 
 $ok_maj = 0 ;
 If ($multi_etablissement == 0) { maj ($id_sql, $base_choisie) ; }
 Else
  {
   For ($i = 1 ; $i <= $bdd [0][0] ; $i++)
    {
     // Connexion
     $id_bdd = SQL_connexion ($sql_adresse, $sql_qui, $sql_passe, $bdd [$i][1], "") ;
     If (!$id_bdd)
      {
       If ($f = @FSockOpen ($sql_adresse, $port, $errno, $errstr, $timeout))
        {
         FClose ($f) ;
         $id_bdd = SQL_connexion ($sql_adresse, $sql_qui, $sql_passe, $bdd [$i][1], $sql_port) ;
         If (!$id_bdd)
          {
           If ($sql_secondaire != "")
            {
             // Test le serveur secondaire si existe
             If ($f = @FSockOpen ($sql_secondaire, $sql_port, $errno, $errstr, $timeout))
              {
               FClose ($f) ;
               $id_bdd = SQL_connexion ($sql_secondaire, $sql_qui, $sql_passe, $bdd [$i][1], $sql_port) ;
              }
             ElseIf ($sql_tertiaire != "")
              {
               // Test le serveur tertiaire si existe
               If ($f = @FSockOpen ($sql_tertiaire, $sql_port, $errno, $errstr, $timeout))
                {
                 FClose ($f) ;
                 $id_bdd = SQL_connexion ($sql_tertiaire, $sql_qui, $sql_passe, $bdd [$i][1], $sql_port) ;
                }
              }
            }
          }
        }
      }
     If (IsSet ($id_bdd)) { maj ($id_bdd, $bdd [$i][1]) ; }
    }
  }
 If ($ok_maj == 0) { $rapport .= "&nbsp;-><b>&Eacute;CHEC</b>&nbsp;:&nbsp;Faire&nbsp;la&nbsp;mise&nbsp;&agrave;&nbsp;jour&nbsp;manuellement...<br>" ; }
?>